s = 3
'''
元组的生成
生成器返回一个结果是元组生成器对象，需要转化为元组或者列表才可以看到内容


'''

'''
【元组和列表的区别】    
元组                             列表
不可变序列                       可变序列
无法实现添加、删除和修改元素等操作   append()、 insert()、 remove()、 pop()等方法实现添加和删除列表元素
支持切片访问元素，不支持修改操作    支持切片访问和修改列表中的元素
访问和处理速度快                  访问和处理速度慢
可以作为字典的键                  不能作为字典的键
'''

t = (i for i in range(4))
print(t)  # <generator object <genexpr> at 0x0000023F46EBB850>  生成器对象

# t = tuple(t)  # 需要将元组生成器对象转化为元组后，才可以显示内容
# print(t)  # (0, 1, 2, 3)

print(t.__next__())  # 每次调用__next__方法，返回一个元素,之前元素就丢出
print(t.__next__())
print(t.__next__())

t = tuple(t)  # 需要将元组生成器对象转化为元组后，才可以显示内容
print(t)  # (3,)

